package org.dxy.api.dto.param;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;



/**
 * @description: 创建参数定义请求DTO
 * @author: dxy
 * @createTime: 2025/1/21
 */
@Data
public class CreateParamDefinitionRequest {

    /**
     * 参数编码（如：TEMP, PRESSURE, VOLTAGE）
     */
    @NotBlank(message = "参数编码不能为空")
    @Size(min = 2, max = 20, message = "参数编码长度在2到20个字符之间")
    private String code;

    /**
     * 参数名称（如：温度, 压力, 电压）
     */
    @NotBlank(message = "参数名称不能为空")
    @Size(min = 2, max = 50, message = "参数名称长度在2到50个字符之间")
    private String name;

    /**
     * 单位（如：℃, Pa, V）
     */
    @Size(max = 10, message = "单位长度不能超过10个字符")
    private String unit;

    /**
     * 输入类型（AUTO_COLLECT: 自动采集, MANUAL_INPUT: 人工录入）
     */
    @NotNull(message = "输入类型不能为空")
    private String inputType;

    /**
     * 数据类型（NUMBER: 数值, STRING: 文本, BOOLEAN: 布尔）
     */
    @NotNull(message = "数据类型不能为空")
    private String dataType;

    /**
     * 默认值
     */
    @Size(max = 100, message = "默认值长度不能超过100个字符")
    private String defaultValue;

    /**
     * 有效范围（如：0-100）
     */
    @Size(max = 50, message = "有效范围长度不能超过50个字符")
    private String validRange;

    /**
     * 描述
     */
    @Size(max = 500, message = "描述长度不能超过500个字符")
    private String description;
}